package ar.com.jendrix.login.entity;

import javax.persistence.Column;
import javax.persistence.Embedded;
import javax.persistence.Entity;
import javax.persistence.EnumType;
import javax.persistence.Enumerated;
import javax.persistence.GeneratedValue;
import javax.persistence.GenerationType;
import javax.persistence.Id;
import javax.persistence.SequenceGenerator;
import javax.persistence.Table;

import ar.com.jendrix.common.persistence.embedded.PeriodoVigencia;
import ar.com.jendrix.common.persistence.entity.BaseEntity;
import ar.com.jendrix.login.type.AplicacionType;

@Entity
@Table(name = "rol")
@SuppressWarnings("serial")
public final class Rol extends BaseEntity {

	@Id
	@SequenceGenerator(name = "id", sequenceName = "rol_seq")
	@GeneratedValue(strategy = GenerationType.AUTO, generator = "id")
	@Column(name = "rol_id", unique = true)
	private Long rolId;

	@Enumerated(EnumType.STRING)
	@Column(name = "aplicacion")
	private AplicacionType aplicacion;

	@Column(name = "nombre", length = 50)
	private String nombre;

	@Column(name = "descripcion", length = 255)
	private String descripcion;

	@Embedded
	private PeriodoVigencia vigencia;

	/**
	 * Constructor default.
	 */
	public Rol() {
		super();
	}

	@Override
	public Long getId() {
		return rolId;
	}

	@Override
	public void setId(Long id) {
		this.rolId = id;
	}

	public AplicacionType getAplicacion() {
		return aplicacion;
	}

	public void setAplicacion(AplicacionType aplicacion) {
		this.aplicacion = aplicacion;
	}

	public String getNombre() {
		return nombre;
	}

	public void setNombre(String nombre) {
		this.nombre = nombre;
	}

	public String getDescripcion() {
		return descripcion;
	}

	public void setDescripcion(String descripcion) {
		this.descripcion = descripcion;
	}

	public PeriodoVigencia getVigencia() {
		if (vigencia == null) {
			vigencia = new PeriodoVigencia();
		}
		return vigencia;
	}

	public void setVigencia(PeriodoVigencia vigencia) {
		this.vigencia = vigencia;
	}
}